package com.fengxing.ams.web.facade.intf;

import java.math.BigInteger;
import java.util.List;
import java.util.Map;

import org.springframework.data.domain.Page;

import com.fengxing.ams.web.action.view.DistributionQueryVO;
import com.fengxing.ams.web.action.view.EnrollScoreQueryVO;
import com.fengxing.ams.web.action.view.EnterpriseQueryVO;
import com.fengxing.ams.web.action.view.OrderCheckVO;
import com.fengxing.ams.web.action.view.OrderForCheckVO;
import com.fengxing.ams.web.action.view.SolutionStudentCondition;
import com.fengxing.ams.web.action.view.StudentsQueryParamVO;
import com.fengxing.ams.web.facade.mouble.college.CollegeVO;
import com.fengxing.ams.web.facade.mouble.company.CompanyImportVO;
import com.fengxing.ams.web.facade.mouble.company.CompanyVO;
import com.fengxing.ams.web.facade.mouble.company.EnterpriseNotifyVO;
import com.fengxing.ams.web.facade.mouble.luqu.MajorVO;
import com.fengxing.ams.web.facade.mouble.major.MajorDescriptionVO;
import com.fengxing.ams.web.facade.mouble.order.OrderHistoryVO;
import com.fengxing.ams.web.facade.mouble.student.StudentSCMVO;
import com.fengxing.ams.web.facade.mouble.student.StudentVO;
import com.fengxing.ams.web.facade.mouble.upload.UploadDetailVO;
import com.fengxing.ams.web.facade.mouble.upload.UploadVO;

public interface IStudentFacade {

	List<BigInteger> getGendarTotal(Integer college_id);

	BigInteger getApplyStudentTotal(Integer collegeId);

	List<StudentVO> queryStduentByScore(EnrollScoreQueryVO queryVO);

	List<StudentVO> queryStduentByScoreGroup(EnrollScoreQueryVO queryVO);

	Map<String, Integer> queryLocationDistribution(DistributionQueryVO queryVO);

	Map<CollegeVO, Integer> queryLocationTop10College(
			DistributionQueryVO queryVO);

	Map<MajorVO, Integer> queryTop10MajorByCollege(DistributionQueryVO queryVO);

	Map<String, Integer> querySubjectRatio(Integer i);

	Map<String, Integer> queryBatchDistribution(DistributionQueryVO queryVO);

	Map<MajorDescriptionVO, Integer> queryMajorDistribution(
			DistributionQueryVO queryVO);

	List<StudentVO> queryStudentByRangeInnerJoinEnrollment(
			Map<Integer, Integer> scoreMaps, int i, String subject, String batch);

	List<StudentVO> queryStudentByCollegeIdAndDescriptionId(Map<Integer, Integer> configMap, Integer tholder, 
			Map<Integer, Integer> scoreMaps, Integer range, String subject,
			String batch, List<Integer> collegeIds, List<Integer> descriptionIds);

	List<StudentVO> queryStduentsBySolutionCondition(
			SolutionStudentCondition view);

	List<StudentVO> queryStudentByScoreRange(Map<Integer, Integer> config, Integer thredhold, Map<Integer, Integer> scoreMaps,
			Integer highLine, Integer lowLine, String subject, List<String> batchs,
			List<Integer> collegeIds, List<Integer> descriptionIds, List<String> collegeTyps, String q_2, String q_9, String q_y);

	StudentSCMVO queryProfileById(String email);

	CompanyVO queryCompanyByStudentId(String email);

	void orderApply(StudentSCMVO student, CompanyVO company);

	List<OrderForCheckVO> queryOrdersForCheck(Integer collegeId);

	List<OrderForCheckVO> queryOrdersForCheck();

	CompanyVO queryOrderForCheckOne(String string);

	List<OrderHistoryVO> queryTimeLines(String id);

	void checkOrder(OrderCheckVO input);

	void save(UploadVO uploadVO);

	List<UploadVO> queryUploadList(UploadVO uploadVO);

	List<UploadVO> queryUploadsForParse();

	void updateUploadStatusAndRemark(Integer integer, String string, String string2);

	List<UploadDetailVO> queryUploadDetail(Integer id);

	Page<StudentSCMVO> queryStudentsList(StudentsQueryParamVO param);

	void studentsDelete(StudentsQueryParamVO param);

	void orderReApply(StudentSCMVO student, CompanyVO company);

	Page<CompanyImportVO> queryEnterpriseList(EnterpriseQueryVO param);

	void enterpriseDelete(EnterpriseQueryVO param);

	void saveNotify(EnterpriseNotifyVO param);

	void enterpriseCreate(CompanyImportVO param);
	
}
